/**
 * @file litefoc_port.c
 * @author wangshixin (gin0101@126.com)
 * @brief LiteFOC 硬件引脚配置、PWM控制及角度获取
 * @version 1.0.0
 * @date 2023-09-28
 * 
 * @copyright Copyright (c) 2023
 * 
 */

#include "litefoc_port.h"


/********************************************** 内部函数定义 BEGIN **********************************************/
/**
 * @brief 电源控制配置
 * 
 */
static void _litefoc_port_init_power(void)
{
}


/**
 * @brief pwm 硬件功能配置
 * 
 */
static void _litefoc_port_init_pwm(void)
{
}
/********************************************** 内部函数定义 END ************************************************/


/**
 * @brief LiteFOC 硬件接口初始化
 * 
 */
void litefoc_port_init(void)
{
    _litefoc_port_init_power();
    _litefoc_port_init_pwm();
    _litefoc_port_init_sensor();
}


/**
 * @brief pwm 值设置
 * 
 * @param   ucU 电机U相PWM值
 * @param   ucV 电机V相PWM值
 * @param   ucW 电机W相PWM值
 * 
 * @return  0 - 设置成功， 其他 - 设置失败
 */
unsigned char litefoc_port_set_pwm(unsigned char ucU, unsigned char ucV, unsigned char ucW)
{
    unsigned char res = 0;

    /***
     * PWM 设置
    */

    return res;
}


/**
 * @brief 电机绝对角度获取
 * 
 * @param   fAngle 角度指针
 * 
 * @return  0 - 获取成功， 其他 - 获取失败
 */
unsigned char litefoc_port_get_angle(float *fAngle)
{
    unsigned char res = 0;

    /***
     * 读传感器绝对值角度
    */
    if (*fAngle > 360.0f || *fAngle < 0.0f) res = 1;

    return res;
}


/**
 * @brief 电机电源控制
 * 
 */
void litefoc_port_power(unsigned char ucEnable)
{
    if (ucEnable)
    {
        // 电源使能
    }
    else
    {
        // 电源失能
    }
}
